package javawdw.io.simple;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;

import javawdw.io.TextReader;

/**
 * 文本类文件读入器
 * 
 * @author David
 * 
 */
public class BufferedTextReader implements TextReader {
	private BufferedReader reader;

	/**
	 * 根据给定的字符集和输入流创建文本文件读入器
	 * 
	 * @param inputStream
	 *            给定的输入流
	 * @param charsetName
	 *            给定的字符集
	 */
	public BufferedTextReader(InputStream inputStream, String charsetName) {
		try {
			InputStreamReader isr = new InputStreamReader(inputStream,
					charsetName);
			this.reader = new BufferedReader(isr);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 根据默认的字符集和输入流创建文本文件读入器
	 * 
	 * @param inputStream
	 *            给定的输入流
	 */
	public BufferedTextReader(InputStream inputStream) {
		this(inputStream, Charset.defaultCharset().name());
	}

	/**
	 * 关闭读入器
	 */
	public void close() {
		try {
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 读入一行
	 * 
	 * @return 返回读到的内容
	 */
	public String readLine() {
		try {
			return reader.readLine();
		} catch (IOException e) {
			e.printStackTrace();
			return null;
		}
	}
}
